import React, { Component } from "react";
// 1. 引入一个 connect 函数 给组件 注入属性还有方法
import { connect } from "react-redux"
class App extends Component {
  render() {
    return (
      <div>
        <button
          onClick={() => {
            // TODO 获取一个加方法
            this.props.add();
          }}
        >
          +
        </button>
        <span>{this.props.num}</span>
        <button
          onClick={() => {
            // TODO 获取一个减的方法
            this.props.sub();
          }}
        >
          -
        </button>
      </div>
    );
  }
}
// connect(null,null)(App)
// state 仓库中状态
export default connect((state)=>{

  // 返回的对象 注入到 App 组件中 属性
  return {
    num: state.num
  }
},(dispatch)=>{
  // dispatch 函数是 redux 中用来派发动作
  return {
    add:function(){
      console.log("执行加的方法");
      const addAction = {
        type:"ADD",
        payload:{
          num:1
        }
      }
      dispatch(addAction);
    },
    sub:function(){
      console.log("执行减的方法");
      const subAction = {
        type:"SUB",
        payload:{
          num:-1
        }
      }
      dispatch(subAction);

    }
  }

})(App);
